[INFO] cloning repository https://github.com/PewPewPewcoding/rust-tictactoe
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PewPewPewcoding/rust-tictactoe" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPewPewPewcoding%2Frust-tictactoe", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPewPewPewcoding%2Frust-tictactoe'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dd9ad914e74fa39179925f40556282fda686f6cc
[INFO] checking PewPewPewcoding/rust-tictactoe against master#e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPewPewPewcoding%2Frust-tictactoe" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/PewPewPewcoding/rust-tictactoe on toolchain e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/PewPewPewcoding/rust-tictactoe
[INFO] finished tweaking git repo https://github.com/PewPewPewcoding/rust-tictactoe
[INFO] tweaked toml for git repo https://github.com/PewPewPewcoding/rust-tictactoe written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/PewPewPewcoding/rust-tictactoe already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] db5d65c027188addeb617a31966ff59c658658685b4fd85ce031b8384887fd7f
[INFO] running `Command { std: "docker" "start" "-a" "db5d65c027188addeb617a31966ff59c658658685b4fd85ce031b8384887fd7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "db5d65c027188addeb617a31966ff59c658658685b4fd85ce031b8384887fd7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db5d65c027188addeb617a31966ff59c658658685b4fd85ce031b8384887fd7f", kill_on_drop: false }`
[INFO] [stdout] db5d65c027188addeb617a31966ff59c658658685b4fd85ce031b8384887fd7f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8da2bde7033e38a1d9d4678cec6eb91c6c4d0c2093fd73cf4e2c36b148a2c863
[INFO] running `Command { std: "docker" "start" "-a" "8da2bde7033e38a1d9d4678cec6eb91c6c4d0c2093fd73cf4e2c36b148a2c863", kill_on_drop: false }`
[INFO] [stderr]     Checking tictactoe v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: `mut` must be attached to each individual binding
[INFO] [stdout]   --> src/lib.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut (x, o, e) = (0, 0, 0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: add `mut` to each binding: `(mut x, mut o, mut e)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `mut` may be followed by `variable` and `variable @ pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `mut` must be attached to each individual binding
[INFO] [stdout]   --> src/lib.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut (x, o, e) = (0, 0, 0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: add `mut` to each binding: `(mut x, mut o, mut e)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `mut` may be followed by `variable` and `variable @ pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TicTacToe: Copy` is not satisfied
[INFO] [stdout]   --> src/lib.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let mut board = [TicTacToe::Empty; 9];
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `TicTacToe`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(Copy)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(Copy)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `String` is not an iterator
[INFO] [stdout]   --> src/lib.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for i in input {
[INFO] [stdout]    |                  ^^^^^ `String` is not an iterator; try calling `.chars()` or `.bytes()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Iterator` is not implemented for `String`
[INFO] [stdout]    = note: required for `String` to implement `IntoIterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[TicTacToe]` cannot be indexed by `char`
[INFO] [stdout]   --> src/lib.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 'X' => board[i] = TicTacToe::X,
[INFO] [stdout]    |                              ^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `SliceIndex<[TicTacToe]>` is not implemented for `char`
[INFO] [stdout]    = note: required for `[TicTacToe]` to implement `Index<char>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[TicTacToe]` cannot be indexed by `char`
[INFO] [stdout]   --> src/lib.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 'O' => board[i] = TicTacToe::O,
[INFO] [stdout]    |                              ^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `SliceIndex<[TicTacToe]>` is not implemented for `char`
[INFO] [stdout]    = note: required for `[TicTacToe]` to implement `Index<char>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 if i == TicTacToe::Empty {
[INFO] [stdout]    |                    - ^^ ---------------- TicTacToe
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    TicTacToe
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | enum TicTacToe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(PartialEq)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `&GameState`
[INFO] [stdout]   --> src/lib.rs:44:21
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     tmp[i] = TicTacToe::X;
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `TicTacToe: Copy` is not satisfied
[INFO] [stdout]   --> src/lib.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 |         let mut board = [TicTacToe::Empty; 9];
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `TicTacToe`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(Copy)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(Copy)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `String` is not an iterator
[INFO] [stdout]   --> src/lib.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for i in input {
[INFO] [stdout]    |                  ^^^^^ `String` is not an iterator; try calling `.chars()` or `.bytes()`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Iterator` is not implemented for `String`
[INFO] [stdout]    = note: required for `String` to implement `IntoIterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[TicTacToe]` cannot be indexed by `char`
[INFO] [stdout]   --> src/lib.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 'X' => board[i] = TicTacToe::X,
[INFO] [stdout]    |                              ^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `SliceIndex<[TicTacToe]>` is not implemented for `char`
[INFO] [stdout]    = note: required for `[TicTacToe]` to implement `Index<char>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the type `[TicTacToe]` cannot be indexed by `char`
[INFO] [stdout]   --> src/lib.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |                 'O' => board[i] = TicTacToe::O,
[INFO] [stdout]    |                              ^ slice indices are of type `usize` or ranges of `usize`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `SliceIndex<[TicTacToe]>` is not implemented for `char`
[INFO] [stdout]    = note: required for `[TicTacToe]` to implement `Index<char>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 |                 if i == TicTacToe::Empty {
[INFO] [stdout]    |                    - ^^ ---------------- TicTacToe
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    TicTacToe
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | enum TicTacToe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(PartialEq)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `&GameState`
[INFO] [stdout]   --> src/lib.rs:44:21
[INFO] [stdout]    |
[INFO] [stdout] 44 |                     tmp[i] = TicTacToe::X;
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |             return result;
[INFO] [stdout]    |                    ------ here the type of `result` is inferred to be `Vec<GameState>`
[INFO] [stdout] ...
[INFO] [stdout] 45 |                     result.push(tmp);
[INFO] [stdout]    |                            ---- ^^^ expected `GameState`, found `&GameState`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/alloc/src/vec/mod.rs:1824:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:50:22
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 if i == TicTacToe::Empty {
[INFO] [stdout]    |                    - ^^ ---------------- TicTacToe
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    TicTacToe
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | enum TicTacToe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(PartialEq)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `&GameState`
[INFO] [stdout]   --> src/lib.rs:52:21
[INFO] [stdout]    |
[INFO] [stdout] 52 |                     tmp[i] = TicTacToe::O;
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |             return result;
[INFO] [stdout]    |                    ------ here the type of `result` is inferred to be `Vec<GameState>`
[INFO] [stdout] ...
[INFO] [stdout] 45 |                     result.push(tmp);
[INFO] [stdout]    |                            ---- ^^^ expected `GameState`, found `&GameState`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/alloc/src/vec/mod.rs:1824:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:50:22
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 if i == TicTacToe::Empty {
[INFO] [stdout]    |                    - ^^ ---------------- TicTacToe
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    TicTacToe
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `TicTacToe`
[INFO] [stdout]   --> src/lib.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | enum TicTacToe {
[INFO] [stdout]    | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] help: consider annotating `TicTacToe` with `#[derive(PartialEq)]`
[INFO] [stdout]    |
[INFO] [stdout] 1  + #[derive(PartialEq)]
[INFO] [stdout] 2  | enum TicTacToe {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `&GameState`
[INFO] [stdout]   --> src/lib.rs:52:21
[INFO] [stdout]    |
[INFO] [stdout] 52 |                     tmp[i] = TicTacToe::O;
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:53:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |             return result;
[INFO] [stdout]    |                    ------ here the type of `result` is inferred to be `Vec<GameState>`
[INFO] [stdout] ...
[INFO] [stdout] 53 |                     result.push(tmp);
[INFO] [stdout]    |                            ---- ^^^ expected `GameState`, found `&GameState`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/alloc/src/vec/mod.rs:1824:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/lib.rs:53:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |             return result;
[INFO] [stdout]    |                    ------ here the type of `result` is inferred to be `Vec<GameState>`
[INFO] [stdout] ...
[INFO] [stdout] 53 |                     result.push(tmp);
[INFO] [stdout]    |                            ---- ^^^ expected `GameState`, found `&GameState`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/e6e4f7ed1589e03bc2f6c5931c1a72e7947e8682/library/alloc/src/vec/mod.rs:1824:12
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0369, E0608.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0369, E0608.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tictactoe` (lib test) due to 12 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `tictactoe` (lib) due to 12 previous errors
[INFO] running `Command { std: "docker" "inspect" "8da2bde7033e38a1d9d4678cec6eb91c6c4d0c2093fd73cf4e2c36b148a2c863", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8da2bde7033e38a1d9d4678cec6eb91c6c4d0c2093fd73cf4e2c36b148a2c863", kill_on_drop: false }`
[INFO] [stdout] 8da2bde7033e38a1d9d4678cec6eb91c6c4d0c2093fd73cf4e2c36b148a2c863
